//
//  Person.h
//  OC01_类和对象
//
//  Created by dllo on 15/11/30.
//  Copyright © 2015年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>

/**
 * .h 文件包含类的实例变量,和方法的声明.
 * 实例变量和方法的声明要在对应的@interface 和 @end 之间
 */


@interface Person : NSObject/* 其中, Person 是类名,  代码规范要求, 类名首字母大写!!! NSObject 父类名(后面的继承章节详细介绍) */

/** 1.类的实例变量, 注意, 写在 花括号 内 */
{
    /* 实例变量可见度: 1.@public 2.@protected 3.@private
     * 
     * @public 公共的.  是指类的内部和外部都可以直接访问
         注: 类的内部是指 .m 文件中@implementation @end之间
     * @protected 受保护的. 是指类的内部,及子类可以访问
     * @private 私有的. 是指类的内部可以访问
     
     * 默认可见度是: @protected受保护
     */
    
    
    
    @public/* 可见度修饰词修饰直到下一个可见度修饰词之前的实例变量 */
    
    NSString *_name;/* OC中的字符串同样也是对象,NSString 就是字符串对象类型. 由于对象是在堆区开空间,所以,NSString类型的实例变量前面加'*'符号(指针), 代码规范: 实例变量前面加 '_' 符号 (目的:是和后面讲到的属性进行区别)   */
    int _age;
    
    NSInteger _number; /* 注意: NSInterger不是对象类型,根据系统环境确定不同的整型类型 */
    @private
    float _weight;
    
}

/** 2.类的方法声明 */
- (void)sayHello;
/** 
 * 1.方法前面要加上'+' 或'-'符号,分别表示 '类方法' 还是 '对象方法'
 * 2.方法的返回值用括号括起来
 * 3.方法如果没有参数的话,后面没有括号;
 */

- (void)informationOfPerson:(Person *)person;
/** 
 * 1.(-)对象方法
 * 2.如果方法带参数, ':' 后面加上  (参数类型)参数名
 */

- (void)information;




@end
